package com.softer.chengxin.file.dao;

import com.softer.chengxin.file.dao.provider.FileDaoProvider;
import com.softer.chengxin.file.entity.FileDTO;
import com.softer.chengxin.file.entity.FileVO;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author Gong Zhiyang
 * @date 2018/10/10
 */
@Mapper
@Repository
public interface FileDao {
    /**
     * 增加文件
     *
     * @param fileVO 文件实体
     * @return 增加结果
     */
    @Insert("INSERT INTO file_list(file_name,new_file_name,add_time,file_type,file_size,corid,project_id,person_id,path,type,info_id)" +
            " VALUES(#{f.fileName},#{f.newFilName},now(),#{f.fileType},#{f.fileSize},#{f.corId},#{f.projectId},#{f.personId},#{f.path},#{f.type},#{f.infoId})")
    @Options(useGeneratedKeys = true, keyProperty = "f.id", keyColumn = "id")
    int add(@Param("f") FileVO fileVO);

    /**
     * 通过文件类型查询文件
     *
     * @param fileDTO 查询实体
     * @param id      企业ID
     * @return 文件信息
     */
    @SelectProvider(type = FileDaoProvider.class, method = "getFileList")
    List<FileVO> getFileList(@Param("f") FileDTO fileDTO, @Param("id") Integer id);

    @SelectProvider(type = FileDaoProvider.class, method = "getPath")
    List<String> getPath(@Param("f") FileDTO fileDTO, @Param("id") Integer id);

    /**
     * 删除附件
     *
     * @param id 附件ID
     * @return 结果
     */
    @Delete("delete from file_list where id=#{id}")
    int delete(@Param("id") Integer id);
}
